package com.saceem.imagenes.test;

import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;

public class PropiedadesProcesadorFacturas {

	private final static Logger log = Logger
			.getLogger(PropiedadesProcesadorFacturas.class.getName());

	private String rutaOrigen;
	private String rutaDestino;
	private String rutaError;
	private String servidorCorreo;
	private String usuarioCorreo;
	private String claveCorreo;
	private String destinatarioCorreo;
	private String cuentaOrigen;
	private int anchoCodigoBarra;
	private int altoCodigoBarra;
	private Map<String, String> prefijos;
	private int intervalo;
	private static PropiedadesProcesadorFacturas props = null;

	private PropiedadesProcesadorFacturas() {
		// Properties info = new Properties();
		try {

			// info.load(new FileInputStream(
			// "C:/tmp/escaner/recursos/configuracion.properties"));
			// this.rutaOrigen = info.getProperty("ruta.origen");
			// this.rutaDestino = info.getProperty("ruta.destino");
			// this.rutaError = info.getProperty("ruta.error");
			//
			// this.servidorCorreo = info.getProperty("correo.servidor");
			// this.usuarioCorreo = info.getProperty("correo.usuario");
			// this.claveCorreo = info.getProperty("correo.clave");
			// this.destinatarioCorreo =
			// info.getProperty("correo.destinatarios");
			// this.cuentaOrigen = info.getProperty("correo.cuentaorigen");
			//
			// this.anchoCodigoBarra = Integer.parseInt(info
			// .getProperty("codigo.barras.ancho"));
			// this.altoCodigoBarra = Integer.parseInt(info
			// .getProperty("codigo.barras.alto"));
			//
			// this.intervalo = Integer.parseInt(info.getProperty("intervalo"));
			//
			// this.prefijos = new HashMap<String, String>();

			this.rutaOrigen = System.getProperty("ruta.origen");
			this.rutaDestino = System.getProperty("ruta.destino");
			this.rutaError = System.getProperty("ruta.error");

//			this.servidorCorreo = System.getProperty("correo.servidor");
//			this.usuarioCorreo = System.getProperty("correo.usuario");
//			this.claveCorreo = System.getProperty("correo.clave");
			this.destinatarioCorreo = System
					.getProperty("correo.destinatarios");
//			this.cuentaOrigen = System.getProperty("correo.cuentaorigen");

			this.anchoCodigoBarra = Integer.parseInt(System
					.getProperty("codigo.barras.ancho"));
			this.altoCodigoBarra = Integer.parseInt(System
					.getProperty("codigo.barras.alto"));

			this.intervalo = Integer.parseInt(System.getProperty("intervalo"));

			this.prefijos = new HashMap<String, String>();

			String aux = System.getProperty("prefijos");
			String[] prefijosAux = aux.split(";");
			for (int i = 0; i < prefijosAux.length; i++)
				this.prefijos.put(prefijosAux[i], prefijosAux[i]);
		} catch (Exception ex) {
			log.info(ex);
		}
	}

	public static PropiedadesProcesadorFacturas getInstance() {
		if (props == null) {
			props = new PropiedadesProcesadorFacturas();
		}
		return props;
	}

	public String getRutaOrigen() {
		return this.rutaOrigen;
	}

	public String getRutaDestino() {
		return this.rutaDestino;
	}

	public String getRutaError() {
		return this.rutaError;
	}

	public String getServidorCorreo() {
		return this.servidorCorreo;
	}

	public String getUsuarioCorreo() {
		return this.usuarioCorreo;
	}

	public String getClaveCorreo() {
		return this.claveCorreo;
	}

	public String getDestinatarioCorreo() {
		return this.destinatarioCorreo;
	}

	public int getAnchoCodigoBarra() {
		return this.anchoCodigoBarra;
	}

	public int getAltoCodigoBarra() {
		return this.altoCodigoBarra;
	}

	public boolean validarPrefijo(String valor) {
		return this.prefijos.containsKey(valor);
	}

	public int getIntervalo() {
		return this.intervalo;
	}

	public String getCuentaOrigen() {
		return this.cuentaOrigen;
	}
}
